package com.effectiv.req1.business.api;


import java.util.Date;
import java.util.List;

import com.effectiv.req1.domain.UseCase;


public interface UseCaseService extends BusinsessService<UseCase, String> {
	
	List<UseCase> findUseCases();
	List<UseCase> findByProject(String projectId);
	
	UseCase includeUseCase(String id, String includedId);
	public UseCase deleteInclude(String id, int index);
	
	UseCase addUseCaseMainFlowStepDescription(String id, String description);
	UseCase move(String id, int index, boolean up);
	UseCase moveAlternate(String id, int index,int flowid,int stepid, boolean up);
	UseCase deleteMainFlowStep(String id, int index);
	UseCase addAlternateFlow(String id, int index);
	UseCase addAlternateFlowStepDescription(String description,String id,int stepid,int flowid);
	UseCase deleteAlternateStep(String id,int index,int flowid,int stepid);
	UseCase appendCondition(String id, String description, boolean post);
	UseCase appendActor(String id, int index);
	UseCase editMainFlowStep(String id,int rowNum,String description);
	UseCase deleteCondition(String id,int index,boolean pre); 
	UseCase addPriority(String id, String priority);
	UseCase saveFrequency(String id, int times, String unit);
	UseCase addAssumption(String id, String description);
	UseCase deleteAssumption(String id, int index);
	UseCase deleteActor(String id, int index);
	UseCase addException(String id, String description);
	UseCase deleteException(String id, int index);
	
	UseCase addSpecial(String id, String description);
	UseCase deleteSpecial(String id, int index);
	
	UseCase addNote(String id, String responsibleUserId, Date targetDate, String description,String priority);
}
